package com.niit.spark.sql

import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}

/**
 * Date:2025/5/20
 * Author：Ys
 * Description:
 */
object Spark_JDBC {

  def main(args: Array[String]): Unit = {

    val spark = SparkSession.builder().appName("Spark_UFD").master("local[*]").getOrCreate()
    spark.sparkContext.setLogLevel("ERROR")

    //链接mysql 读取一张表的数据
    val df: DataFrame = spark.read
      .format("jdbc") //指定数据源 链接mysql   odbc ORACLE
      .option("url", "jdbc:mysql://node1:3306/BD2")// 链接本地 jdbc:mysql://localhost:3306/本地的数据库
      .option("driver", "com.mysql.jdbc.Driver") //mysql 8.0以上：com.mysql.cj.jdbc.Driver
      .option("user", "root") //用户名
      .option("password", "Niit@123") //密码
      .option("dbtable", "user") //表名
      .load()

    df.show()


    df.write
      .format("jdbc")
      .option("url", "jdbc:mysql://node1:3306/BD2")
      .option("driver", "com.mysql.jdbc.Driver")
      .option("user", "root")
      .option("password", "Niit@123")
      .option("dbtable", "user3")
      .mode(SaveMode.Append)// 当数据表不存在的时候会自动创建
      .save()

    spark.stop()
  }

}
